1. Field of the Invention
The present invention relates to the field of computer peripherals. More specifically, the present invention relates to print servers.
2. Description of Related Art
Two types of printersxe2x80x94stand-alone and networkedxe2x80x94are currently available for computer systems and other devices generating hard copy output. A stand-alone printer is connected directly to a port of the computer system for which it is utilized and is often located physically near the computer system. A stand-alone printer, though easy to monitor and control due to its proximity and direct connectivity to the computer system, cannot be shared. Historically, with a computer such as a mainframe or server, there has always been one printer or a single set of printers, so-called networked printers, somewhat remotely located from individual client workstations which were shared by multiple clients connected to that mainframe or server. More recently, as local area networks (LANs) and wide area networks (WANs) of many individual client workstations gained popularity, the networking of a single printer or set of printers for these workstations using a central server also became popular.
In a server environment, networked printers are connected to client workstations through a central server. Most servers also allow users on computers systems (clients) to access shared data, run shared applications and manage network communications among clients. When desired, specialized servers, such as print servers, can be employed to carry out only one function. Traditional print servers manage print jobs when generated by clients of the network by keeping a task list of all print jobs on the network, listing the sizes of those jobs and priorities. In cases where there is no print server, the individual workstations can perform the print server functions, but do so with only limited effectiveness.
Even with a traditional print server in the network, the user at each client station must select the printer that they wish to use, or they can be assigned a default printer during setup of the client station. In any case, the user is forced to choose (or leave to default) the printer used when sending a print job over the network. The user must also select all the preferences of the print job, such as print image quality, speed, color or black-and-white, etc., before the job is sent.
If the print job is successful, the user can go to the printer and pick up the print job. However, if there is an error, or the printer is busy processing a job from a second user, the user will be notified by either the server or the selected printer. Typical printer errors such as xe2x80x9cprinter out of paperxe2x80x9d are sent to the user at the user""s client station to notify the user that the error should be resolved if printing is to be completed. At this stage, the user must either fix the printer error (for instance, adding paper in case of a xe2x80x9cprinter out of paperxe2x80x9d error) or cancel and resend the current job to a different printer. If the user chooses to resend the job to a different printer, the user must select which printer and, thus, be aware that the printer selected is capable of complying with the preferences of the print job.
Currently, there is no networked print server solution allowing a user to merely select the preferences of the print job, such as quality and speed, without also having to determine which printer on the network will best suit his needs. Further, traditional networked print servers do not automatically re-route jobs to other printers when there is a printer error, nor keep track of and account for the physical location of printers when re-routing them, such that the printer selected will be close in proximity to the user/client. When the user is forced to select a printer on the network, he must know where that printer is and make decisions as to the printer""s capabilities in order to ensure compliance with the print job preferences. Another feature lacking in traditional print servers is the ability to automatically distribute and update new software and drivers for existing printers, or provide drivers/software for new printers, thereby eliminating the need to manually update each of the client stations in such cases.
Thus, there is a need for a networked print server solution where the user needs only choose job-relevant preferences such as the quality and speed without having to determine which printer to send the print job to. Further, when a printer error occurs, there is a need to automatically ensure that the job is printed in compliance with the print job preferences without the user having to manually select a different printer.
The invention provides a method and apparatus for a networked print server which minimizes the necessity of user interaction in the printing process.
A virtual printer, coupled to a client station and generating a print job, receives preferences from a user regarding the print job such as image quality and/or speed. The virtual printer sends the print job along with the preferences over a network to a server. The server automatically determines which printer of the printers on the network comply with the print job preferences. The server then selects an appropriate printer which complies with the preferences of the print job and is located physically near the user/client. When the job is complete, the server notifies the user through the virtual printer that the print job is complete and of the location of the selected printer. If an error signal is returned by the selected printer before completion, the server automatically selects a different printer closely complying with the preferences.
Alternatively, the server may only store a database necessary for the virtual printer to determine and select an appropriate printer. The server may also be capable of spooling the print job from the client. The server may also store and update the physical locations of printers and client workstations as well as maintain the availability/status of printers on the network. The server will also be able to update software/drivers for existing or new printers by distributing the necessary code to the clients automatically.